home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / CPP / WFC010.ZIP / INCLUDE / SOCKETS.HPP < prev    next >
C/C++ Source or Header  |  1995-12-07  |  3KB  |  99 lines

  1. #ifndef SOCKET_CLASS_HEADER
  2.  
  3. /*
  4. ** Author: Samuel R. Blackburn
  5. ** CI$: 76300,326
  6. ** Internet: sammy@sed.csc.com
  7. **
  8. ** You can use it any way you like as long as you don't try to sell it.
  9. **
  10. ** Any attempt to sell WFC in source code form must have the permission
  11. ** of the original author. You can produce commercial executables with
  12. ** WFC but you can't sell WFC.
  13. **
  14. ** Copyright, 1995, Samuel R. Blackburn
  15. **
  16. ** $Workfile: $
  17. ** $Revision: $
  18. ** $Modtime: $
  19. */
  20.  
  21. #define SOCKET_CLASS_HEADER
  22.  
  23. class CSimpleSocket : public CDummyFile
  24. {
  25.    private:
  26.  
  27.       void m_Initialize( void );
  28.  
  29.    protected:
  30.  
  31.       CString m_PortName;
  32.  
  33.       short m_PortNumberInNetworkByteOrder;
  34.  
  35.       SOCKET m_SocketID; 
  36.  
  37.    public:
  38.  
  39.       CSimpleSocket();
  40.       CSimpleSocket( SOCKET client_id );
  41.  
  42.       /*
  43.       ** Destructor should be virtual according to MSJ article in Sept 1992
  44.       ** "Do More with Less Code:..."
  45.       */
  46.  
  47.       virtual ~CSimpleSocket();
  48.  
  49.       CString     Address; 
  50.       CString     Name;
  51.       CStringList AliasList; // Pointers to CString's
  52.  
  53.       static void __stdcall StartWindowsSockets( void );
  54.       static void __stdcall StopWindowsSockets( void );
  55.       static void __stdcall TranslateErrorCode( DWORD error_code, LPSTR destination_string, DWORD size_of_destination_string );
  56.  
  57.       /*
  58.       ** Getting data from the object
  59.       */
  60.  
  61.       virtual void   GetAddress( CString& a ) const;
  62.       virtual SOCKET GetID( void ) const;
  63.       virtual void   GetName( CString& a ) const;
  64.       virtual void   GetPort( short& p ) const;
  65.       virtual void   GetPort( CString& p ) const;
  66.  
  67.       /*
  68.       ** Putting data into the object
  69.       */
  70.  
  71.       virtual void SetAddress( const char *a ); // Fills in Address, Name and AliasList
  72.       virtual void SetID( const SOCKET id );
  73.       virtual void SetName( const char *a );
  74.       virtual void SetPort( const char *p );
  75.       virtual void SetPort( const short p );
  76.  
  77.       /*
  78.       ** Misc Functions
  79.       */
  80.  
  81.       virtual BOOL Open( void ) = 0;
  82.       virtual BOOL Open( const char *channel_name, UINT port_number = 23, CFileException* pError = NULL ) = 0;
  83.       virtual void Close( void );
  84.       virtual BOOL IsDataWaiting( void );
  85.       virtual void Write( const CString& data_to_write );
  86.       virtual void Write( const VOID *buffer, const long number_of_bytes_to_write );
  87.  
  88.       virtual UINT Read( VOID *buffer, const int max_bytes );
  89.       virtual void Read( CString& line_to_read );
  90.  
  91. #if defined( _DEBUG )
  92.  
  93.       virtual void Dump( CDumpContext& dc ) const;
  94.  
  95. #endif // _DEBUG
  96. };
  97.  
  98. #endif // SOCKET_CLASS_HEADER
  99.